Currently, data networks are experiencing tremendous growth in both business and consumer areas. Corporate use of data networks is growing at a furious rate while at the same time more and more consumers are staking out their place in cyberspace. Corporations are realizing the utility and importance of maintaining an up to date, fast and reliable network. To that end, network equipment manufacturers are constantly striving to improve their current offerings of equipment, e.g., hubs, switches, routers, bridges, multiplexors, etc.
In connection with switch design, the architecture of the typical prior art switch, generally referenced 20, is as shown in FIG. 1. A plurality of ports 12 pass input data, e.g., frames, to their associated queues 14 which are of a finite size. The ports represent the link layer components, i.e., the MAC layer. Each queue 14 is of the first in first out (FIFO) type. Four ports and queues are shown for illustrative purposes only. The output of each queue 14 is input to a four input multiplexor 16. The output of the multiplexor 16 is input to the switching fabric 18. Note that a switching fabric is shown for illustrative purposes only. The switching fabric can be replaced with any other type of resource that must be shared such as data buses, switch cores, processing cores, external ports, memory devices, etc. The output of the switching fabric 18 is input to an output demultiplexor 22 which demultiplexes the output of the switching fabric to the original four data paths. The output of the demultiplexor 22 is input to downstream processing elements (if any).
This scheme works fine when the bandwidth of the switching fabric is more than the combined bandwidth of the input ports 12. A problem arises when the bandwidth of the switching fabric is less than the combined bandwidth of the input ports 12. For example, a problem exists if the bandwidth of the switching fabric is 300 Mbps and each port is capable of clocking in data at 100 Mbps. In this case, the input multiplexor 16 uses a time division multiplexing (TDM) technique to time slice data from each input port. Thus, a round robin approach would be used to share the limited resources of the switching fabric. Using a round robin approach gives each input port equal priority. A disadvantage of this approach is that all ports `suffer` equally with no priority being given to any port over another port. The problem is that a time slot is allocated to a port on a static basis regardless of whether the port has any data to input to the switching fabric. This approach is wasteful of bandwidth and leads to lower performance of the network device.